
%% bare_conf.tex
%% V1.3
%% 2007/01/11
%% by Michael Shell
%% See:
%% http://www.michaelshell.org/
%% for current contact information.
%%
%% This is a skeleton file demonstrating the use of IEEEtran.cls
%% (requires IEEEtran.cls version 1.7 or later) with an IEEE conference paper.
%%
%% Support sites:
%% http://www.michaelshell.org/tex/ieeetran/
%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
%% and
%% http://www.ieee.org/

%%*************************************************************************
%% Legal Notice:
%% This code is offered as-is without any warranty either expressed or
%% implied; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE! 
%% User assumes all risk.
%% In no event shall IEEE or any contributor to this code be liable for
%% any damages or losses, including, but not limited to, incidental,
%% consequential, or any other damages, resulting from the use or misuse
%% of any information contained here.
%%
%% All comments are the opinions of their respective authors and are not
%% necessarily endorsed by the IEEE.
%%
%% This work is distributed under the LaTeX Project Public License (LPPL)
%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
%% distributed and modified. A copy of the LPPL, version 1.3, is included
%% in the base LaTeX documentation of all distributions of LaTeX released
%% 2003/12/01 or later.
%% Retain all contribution notices and credits.
%% ** Modified files should be clearly indicated as such, including  **
%% ** renaming them and changing author support contact information. **
%%
%% File list of work: IEEEtran.cls, IEEEtran_HOWTO.pdf, bare_adv.tex,
%%                    bare_conf.tex, bare_jrnl.tex, bare_jrnl_compsoc.tex
%%*************************************************************************

% *** Authors should verify (and, if needed, correct) their LaTeX system  ***
% *** with the testflow diagnostic prior to trusting their LaTeX platform ***
% *** with production work. IEEE's font choices can trigger bugs that do  ***
% *** not appear when using other class files.                            ***
% The testflow support page is at:
% http://www.michaelshell.org/tex/testflow/



% Note that the a4paper option is mainly intended so that authors in
% countries using A4 can easily print to A4 and see how their papers will
% look in print - the typesetting of the document will not typically be
% affected with changes in paper size (but the bottom and side margins will).
% Use the testflow package mentioned above to verify correct handling of
% both paper sizes by the user's LaTeX system.
%
% Also note that the "draftcls" or "draftclsnofoot", not "draft", option
% should be used if it is desired that the figures are to be displayed in
% draft mode.
%
\documentclass[10pt, conference, compsocconf]{IEEEtran}
% Add the compsocconf option for Computer Society conferences.
%
% If IEEEtran.cls has not been installed into the LaTeX system files,
% manually specify the path to it like:
% \documentclass[conference]{../sty/IEEEtran}





% Some very useful LaTeX packages include:
% (uncomment the ones you want to load)


% *** MISC UTILITY PACKAGES ***
%
\usepackage{ifpdf}
% Heiko Oberdiek's ifpdf.sty is very useful if you need conditional
% compilation based on whether the output is pdf or dvi.
% usage:
% \ifpdf
%   % pdf code
% \else
%   % dvi code
% \fi
% The latest version of ifpdf.sty can be obtained from:
% http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/
% Also, note that IEEEtran.cls V1.7 and later provides a builtin
% \ifCLASSINFOpdf conditional that works the same way.
% When switching from latex to pdflatex and vice-versa, the compiler may
% have to be run twice to clear warning/error messages.






% *** CITATION PACKAGES ***
%
\usepackage{cite}
% cite.sty was written by Donald Arseneau
% V1.6 and later of IEEEtran pre-defines the format of the cite.sty package
% \cite{} output to follow that of IEEE. Loading the cite package will
% result in citation numbers being automatically sorted and properly
% "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using
% cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's
% \cite will automatically add leading space, if needed. Use cite.sty's
% noadjust option (cite.sty V3.8 and later) if you want to turn this off.
% cite.sty is already installed on most LaTeX systems. Be sure and use
% version 4.0 (2003-05-27) and later if using hyperref.sty. cite.sty does
% not currently provide for hyperlinked citations.
% The latest version can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/cite/
% The documentation is contained in the cite.sty file itself.







% *** GRAPHICS RELATED PACKAGES ***
%
\ifCLASSINFOpdf
  \usepackage[pdftex]{graphicx}
  % declare the path(s) where your graphic files are
	\graphicspath{{pdf/}{figs/}}
  % and their extensions so you won't have to specify these with
  % every instance of \includegraphics
	\DeclareGraphicsExtensions{.pdf, .jpeg, .png}
\else
  % or other class option (dvipsone, dvipdf, if not using dvips). graphicx
  % will default to the driver specified in the system graphics.cfg if no
  % driver is specified.
  %\usepackage[dvips]{graphicx}
  % declare the path(s) where your graphic files are
  %\graphicspath{{../figs/}}
  % and their extensions so you won't have to specify these with
  % every instance of \includegraphics
  % \DeclareGraphicsExtensions{.eps}
\fi
% graphicx was written by David Carlisle and Sebastian Rahtz. It is
% required if you want graphics, photos, etc. graphicx.sty is already
% installed on most LaTeX systems. The latest version and documentation can
% be obtained at: 
% http://www.ctan.org/tex-archive/macros/latex/required/graphics/
% Another good source of documentation is "Using Imported Graphics in
% LaTeX2e" by Keith Reckdahl which can be found as epslatex.ps or
% epslatex.pdf at: http://www.ctan.org/tex-archive/info/
%
% latex, and pdflatex in dvi mode, support graphics in encapsulated
% postscript (.eps) format. pdflatex in pdf mode supports graphics
% in .pdf, .jpeg, .png and .mps (metapost) formats. Users should ensure
% that all non-photo figures use a vector format (.eps, .pdf, .mps) and
% not a bitmapped formats (.jpeg, .png). IEEE frowns on bitmapped formats
% which can result in "jaggedy"/blurry rendering of lines and letters as
% well as large increases in file sizes.
%
% You can find documentation about the pdfTeX application at:
% http://www.tug.org/applications/pdftex





% *** MATH PACKAGES ***
%
\usepackage[cmex10]{amsmath}
% A popular package from the American Mathematical Society that provides
% many useful and powerful commands for dealing with mathematics. If using
% it, be sure to load this package with the cmex10 option to ensure that
% only type 1 fonts will utilized at all point sizes. Without this option,
% it is possible that some math symbols, particularly those within
% footnotes, will be rendered in bitmap form which will result in a
% document that can not be IEEE Xplore compliant!
%
% Also, note that the amsmath package sets \interdisplaylinepenalty to 10000
% thus preventing page breaks from occurring within multiline equations. Use:
%\interdisplaylinepenalty=2500
% after loading amsmath to restore such page breaks as IEEEtran.cls normally
% does. amsmath.sty is already installed on most LaTeX systems. The latest
% version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/





% *** SPECIALIZED LIST PACKAGES ***
%
%\usepackage{algorithmic}
% algorithmic.sty was written by Peter Williams and Rogerio Brito.
% This package provides an algorithmic environment fo describing algorithms.
% You can use the algorithmic environment in-text or within a figure
% environment to provide for a floating algorithm. Do NOT use the algorithm
% floating environment provided by algorithm.sty (by the same authors) or
% algorithm2e.sty (by Christophe Fiorio) as IEEE does not use dedicated
% algorithm float types and packages that provide these will not provide
% correct IEEE style captions. The latest version and documentation of
% algorithmic.sty can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithms/
% There is also a support site at:
% http://algorithms.berlios.de/index.html
% Also of interest may be the (relatively newer and more customizable)
% algorithmicx.sty package by Szasz Janos:
% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/




% *** ALIGNMENT PACKAGES ***
%
%\usepackage{array}
% Frank Mittelbach's and David Carlisle's array.sty patches and improves
% the standard LaTeX2e array and tabular environments to provide better
% appearance and additional user controls. As the default LaTeX2e table
% generation code is lacking to the point of almost being broken with
% respect to the quality of the end results, all users are strongly
% advised to use an enhanced (at the very least that provided by array.sty)
% set of table tools. array.sty is already installed on most systems. The
% latest version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/required/tools/


%\usepackage{mdwmath}
%\usepackage{mdwtab}
% Also highly recommended is Mark Wooding's extremely powerful MDW tools,
% especially mdwmath.sty and mdwtab.sty which are used to format equations
% and tables, respectively. The MDWtools set is already installed on most
% LaTeX systems. The lastest version and documentation is available at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/mdwtools/


% IEEEtran contains the IEEEeqnarray family of commands that can be used to
% generate multiline equations as well as matrices, tables, etc., of high
% quality.


%\usepackage{eqparbox}
% Also of notable interest is Scott Pakin's eqparbox package for creating
% (automatically sized) equal width boxes - aka "natural width parboxes".
% Available at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/eqparbox/





% *** SUBFIGURE PACKAGES ***
%\usepackage[tight,footnotesize]{subfigure}
% subfigure.sty was written by Steven Douglas Cochran. This package makes it
% easy to put subfigures in your figures. e.g., "Figure 1a and 1b". For IEEE
% work, it is a good idea to load it with the tight package option to reduce
% the amount of white space around the subfigures. subfigure.sty is already
% installed on most LaTeX systems. The latest version and documentation can
% be obtained at:
% http://www.ctan.org/tex-archive/obsolete/macros/latex/contrib/subfigure/
% subfigure.sty has been superceeded by subfig.sty.



%\usepackage[caption=false]{caption}
%\usepackage[font=footnotesize]{subfig}
% subfig.sty, also written by Steven Douglas Cochran, is the modern
% replacement for subfigure.sty. However, subfig.sty requires and
% automatically loads Axel Sommerfeldt's caption.sty which will override
% IEEEtran.cls handling of captions and this will result in nonIEEE style
% figure/table captions. To prevent this problem, be sure and preload
% caption.sty with its "caption=false" package option. This is will preserve
% IEEEtran.cls handing of captions. Version 1.3 (2005/06/28) and later 
% (recommended due to many improvements over 1.2) of subfig.sty supports
% the caption=false option directly:
%\usepackage[caption=false,font=footnotesize]{subfig}
%
% The latest version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/
% The latest version and documentation of caption.sty can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/caption/




% *** FLOAT PACKAGES ***
%
%\usepackage{fixltx2e}
% fixltx2e, the successor to the earlier fix2col.sty, was written by
% Frank Mittelbach and David Carlisle. This package corrects a few problems
% in the LaTeX2e kernel, the most notable of which is that in current
% LaTeX2e releases, the ordering of single and double column floats is not
% guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a
% single column figure to be placed prior to an earlier double column
% figure. The latest version and documentation can be found at:
% http://www.ctan.org/tex-archive/macros/latex/base/



%\usepackage{stfloats}
% stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e
% the ability to do double column floats at the bottom of the page as well
% as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in
% LaTeX2e). It also provides a command:
%\fnbelowfloat
% to enable the placement of footnotes below bottom floats (the standard
% LaTeX2e kernel puts them above bottom floats). This is an invasive package
% which rewrites many portions of the LaTeX2e float routines. It may not work
% with other packages that modify the LaTeX2e float routines. The latest
% version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/sttools/
% Documentation is contained in the stfloats.sty comments as well as in the
% presfull.pdf file. Do not use the stfloats baselinefloat ability as IEEE
% does not allow \baselineskip to stretch. Authors submitting work to the
% IEEE should note that IEEE rarely uses double column equations and
% that authors should try to avoid such use. Do not be tempted to use the
% cuted.sty or midfloat.sty packages (also by Sigitas Tolusis) as IEEE does
% not format its papers in such ways.





% *** PDF, URL AND HYPERLINK PACKAGES ***
%
%\usepackage{url}
% url.sty was written by Donald Arseneau. It provides better support for
% handling and breaking URLs. url.sty is already installed on most LaTeX
% systems. The latest version can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/misc/
% Read the url.sty source comments for usage information. Basically,
% \url{my_url_here}.





% *** Do not adjust lengths that control margins, column widths, etc. ***
% *** Do not use packages that alter fonts (such as pslatex).         ***
% There should be no need to do such things with IEEEtran.cls V1.6 and later.
% (Unless specifically asked to do so by the journal or conference you plan
% to submit to, of course. )


% correct bad hyphenation here
\hyphenation{op-tical net-works semi-conduc-tor}


\begin{document}
%
% paper title
% can use linebreaks \\ within to get better formatting as desired

% *************************************************************************************************
% TITULO
% *************************************************************************************************
\title{Low-Power Self-Energy Meter for Wireless Sensor Network}


% *************************************************************************************************
% AUTORES
% *************************************************************************************************
% author names and affiliations
% use a multiple column layout for up to two different
% affiliations

\author{
	\IEEEauthorblockN{Carlos Fern\'andez, Diego Bouvier, Jorge Villaverde, Leonardo Steinfeld,
	Juli\'an Oreggioni}
	\IEEEauthorblockA{Instituto de Ingenier\'ia El\'ectrica\\
		Facultad de Ingenier\'ia UdelaR\\
		Montevideo, Uruguay\\
		Email: carafer@adinet.com.uy, \{dbouvier, jvillav, leo, juliano\}@fing.edu.uy}
}

% conference papers do not typically use \thanks and this command
% is locked out in conference mode. If really needed, such as for
% the acknowledgment of grants, issue a \IEEEoverridecommandlockouts
% after \documentclass

% for over three affiliations, or if they all won't fit within the width
% of the page, use this alternative format:
% 
%\author{\IEEEauthorblockN{Michael Shell\IEEEauthorrefmark{1},
%Homer Simpson\IEEEauthorrefmark{2},
%James Kirk\IEEEauthorrefmark{3}, 
%Montgomery Scott\IEEEauthorrefmark{3} and
%Eldon Tyrell\IEEEauthorrefmark{4}}
%\IEEEauthorblockA{\IEEEauthorrefmark{1}School of Electrical and Computer Engineering\\
%Georgia Institute of Technology,
%Atlanta, Georgia 30332--0250\\ Email: see http://www.michaelshell.org/contact.html}
%\IEEEauthorblockA{\IEEEauthorrefmark{2}Twentieth Century Fox, Springfield, USA\\
%Email: homer@thesimpsons.com}
%\IEEEauthorblockA{\IEEEauthorrefmark{3}Starfleet Academy, San Francisco, California 96678-2391\\
%Telephone: (800) 555--1212, Fax: (888) 555--1212}
%\IEEEauthorblockA{\IEEEauthorrefmark{4}Tyrell Inc., 123 Replicant Street, Los Angeles, California 90210--4321}}




% use for special paper notices
%\IEEEspecialpapernotice{(Invited Paper)}




% make the title area
\maketitle


% *************************************************************************************************
% ABSTRACT
% *************************************************************************************************
\begin{abstract}
Real-time measurement of the energy consumption of wireless sensor network nodes in the field has many interesting applications that range from predicting the remaining battery charge to the energy efficiency assessment of communication protocols. However, designing such a system presents many challenges. In this work we present a measurement method and circuit, named Self-Energy Meter (SEM), that easily adds to a sensor node the capability of measuring its own energy consumption. The SEM developed has very low power consumption, ensuring an almost negligible impact in the battery lifetime. It also solves the problem of handling a dynamic range of five decades. Results from simulations show that the SEM is highly linear, with a coefficient of determination of 0.996, presenting a very low temperature drift, and is almost independent of the power supply.
\end{abstract}


%% *************************************************************************************************
%% PALABRAS CLAVE
%% *************************************************************************************************
% \begin{IEEEkeywords}
% energy measurement; energy consumption; wireless sensor networks; self-energy meter
% 
% \end{IEEEkeywords}




% For peer review papers, you can put extra information on the cover
% page as needed:
% \ifCLASSOPTIONpeerreview
% \begin{center} \bfseries EDICS Category: 3-BBND \end{center}
% \fi
%
% For peerreview papers, this IEEEtran command inserts a page break and
% creates the second title. It will be ignored for other modes.
\IEEEpeerreviewmaketitle


% *************************************************************************************************
% I - INTRODUCCION
% *************************************************************************************************
\section{Introduction}

A lot of efforts have been made in order to measure or estimate the energy consumption of a wireless sensor network (WSN) node, almost all of them for laboratory usage. In \cite{OnEnergy} is presented an interesting analysis of some of these efforts. It also points out the main motivations for measuring the energy consumption, such as predicting battery lifetime of a single node or the entire network, or allowing optimization of the communication protocols.

A sensor node comprises a microcontroller, a packet radio, and at least one sensor. Hereafter, we will refer to the microcontroller and the transceiver, without distinguishing if the node is implemented using a SoC (System on a Chip) or a separate integrated circuit for the microcontroller and the transceiver. Typically a WSN node has two distinct consumption levels corresponding to different operation modes. In the active mode, the node is performing computations, and may also be transmitting or receiving data through its wireless radio. In this case, the current normally varies from a few miliamperes to tens of milliamperes. In the sleep mode, the current is roughly constant and can be as low as a few microamperes (as shown in \cite{TelosB}). Usually these two consumption levels are used to define a duty-cycle (DC).

Different approaches were taken to measure energy consumption. In \cite{EnergyBucket} a coulomb counter is implemented using a pair of capacitors to support programming and debugging tasks (at the lab in development time). This method was also applied to real-time operation in the field \cite{AutomedidaConsumo}. Although this method is very efficient from the point of view of energy consumption, it has some drawbacks, e.g. the introduced ripple when switching the feeding capacitor. In \cite{MicroPowerMeter} a voltage-to-frequency converter (VFC) is presented for the same purpose. As the current sensed is a shunt resistor, this approach can achieve a negligible ripple, but presents a poor temporal resolution if the current is too small. % el problema no era el rango dinamico?

Continuous measurement of energy consumption in very low power battery operated devices presents many challenges. The first and most important is the energy cost of the measuring method itself. Adding hardware means more power consumption, so the first requirement is to maintain the battery lifetime of the device under test (DUT) unaltered (e.g. above 90\% of the original duration without the measurement plug-in). 
The second limitation is the scarce resources available in the sensor node to process the measured data. Large data manipulation or calculations should be avoided. In the third place, as many WSN nodes are deployed in open fields exposed to harsh conditions, they are exposed to a wide temperature variation, thus the measuring device should not be affected by temperature changes. One of the most challenging requirement is the dynamic range, as the current varies from a few microamperes to tens of milliamperes. Moreover, good accuracy and adequate temporal resolution are fundamental for measuring different operation states of the node, e.g. sleep, computing, radio transmission and reception. In this work, the resolution was selected to be one tenth of the charge consumed during a CCA (Clear Channel Assessment), since represent the least consuming activity of interest of a sensor node.  And last but not least, the measurement circuit should be simple (pursuing low cost) and easy to integrate to the sensor node.

In this work we propose a method and a circuit to add to a sensor node the capability of measuring its own energy consumption, to be used in the field, with good linearity, temperature stability, independently of the battery voltage drop over the time, and without significantly affecting the battery lifetime. 

%The remainder of this paper is organized as follows: in Section II, we present our proposal, namely Self-Energy Meter (SEM), in Section III we present the results, and finally Section IV contains concluding remarks and research directions.

%As the energy stored in a battery is measured in charge, i.e. Ah or ampere-hour, it is natural that the measuring method should give an energy consumption in the same magnitude.

% *************************************************************************************************
% II - DESCRIPCION DEL SISTEMA
% *************************************************************************************************
% \section{SYSTEM DESCRIPTION}
\section{Self-Energy Meter}

Our method is based on measuring the DUT current consumption through the voltage drop across a shunt resistor. This voltage is fed into a voltage-to-frequency converter. Ideally, the output frequency is proportional to the current through the resistor. 
This technique has an inherent drawback, the limited measurement range \cite{MicroPowerMeter}. % aparentemente lo solucionan...
In one hand, this method is limited by the maximum acceptable voltage drop in the shunt resistor, resulting from the maximum current consumption, the minimum node operating voltage and the final battery voltage. 
In the other hand, for very low current values (i.e. sleep current) the voltage drop across the shunt resistor is below the circuit noise level, preventing its measurement.
We propose a novel approach to overcome this shortcoming for measuring a sensor node consumption in the full range of operation. The active current, above milliamperes, is measured using the aforementioned method. The sleep current, in the microamperes range, is measured by feeding the node from a charged capacitor. 
In previous works that used this principle \cite{EnergyBucket} \cite{AutomedidaConsumo}, the measuring is based in switching a pair of capacitors -while one capacitor is feeding the device, the other is charging- and counting the number of capacitor full discharges. Since a switching control is required, the associated current draw prevent using this method during sleep mode. Instead, we reused the method adopted for the active mode to measure the accumulated sleep consumption.

% The SEM core is a current-to-frequency converter which consists of three blocks. In the Fig.
% The first block is a resistor ($R_{shunt}$) in series with the DUT that is used as a current-to-voltage converter. In order to maintain a low power operation, the second block converts the voltage across Rshunt to a current one thousand smaller than the original.

The SEM core consists of three blocks. Fig.~\ref{fig1} presents a block diagram of the SEM and showing its integration with the DUT. The first block is a shunt resistor ($R_{shunt}$) in series with the DUT, which is used as a current-to-voltage converter. In order to maintain a low power operation, the second block converts the voltage across $R_{shunt}$ to a current one thousand smaller than the original (we call this scaling factor $\alpha$). The third block takes that current and repeatedly charges and discharges a capacitor $C$ from ground to a certain threshold, 
% . The output of the last block responds to this charge and discharge 
generating a square wave signal.
%  ready to be used by the sensor node. A counter from the sensor node is incremented with each falling edge of this signal. Each count represents a fixed amount of charge consumed by the sensor node (a \emph{charge quantum}).
This signal is feed to a counter in the sensor node (each pulse correspond to a \emph{charge quantum}).

\begin{figure}[!htb]
\centering
\includegraphics[width=2.3in]{Fig1.png}
\caption{SEM block diagram showing the integration with a WSN node.}
\label{fig1}
\end{figure}

% Reescribir el siguiente parrafo. Son dos ideas: (1) usar un condensador y el VCF para medir el consumo en sleep y apagar el VFC en sleep para consumir poco.
%>>> 
To measure the full range of energy consumption, in particular the two distinct states of sleep and active, SEM also uses two states. 
The idea is to use a capacitor as a buffer (named $C_{sleep}$) for the energy consumed during the sleep state. When the active state is reached, the DUT power supply is switched from $C_{sleep}$ to the battery, and the capacitor is switched from DUT to a point where it is recharged and prepared for the next cycle. In this scenario, charge consumed during sleep is measured when recharging $C_{sleep}$. A time diagram is presented on Fig. \ref{fig2}.

\begin{figure}[!htb]
\centering
\includegraphics[width=2.5in]{Fig2}
\caption{Timing diagram of the measuring cycle. Active state is denoted by A, Sleep state by S. When the node is power from the battery is marked as B and when the buffer capacitor is connected is denoted as C. The axes scales are exaggerated for illustrative purposes.}
\label{fig2}
\end{figure}

% To make these changes between consumption measurement modes, and different power sources, two switches are used. 
Two switches are used to change between the measurement modes, and to switch between different power sources. 
% In the Fig. \ref{fig3} there is a diagram that shows the fundamental components that permits this behavior. One switch ($SW_{1}$) connects the DUT to the battery or to the buffer capacitor $C_{sleep}$. While the other switch ($SW_{2}$) connects the $C_{sleep}$ capacitor to the DUT or to the battery, through a pair of resistors. These two switches are controlled ideally by only one control line of the DUT.
Fig. \ref{fig3} shows a diagram with the described components: the switch ($SW_{1}$) connects the DUT to the battery or to the buffer capacitor $C_{sleep}$ and the switch ($SW_{2}$) connects the $C_{sleep}$ capacitor to the DUT or to the battery through a pair of resistors.
These two switches are controlled by only one control line of the DUT. % porque decía ``ideally``?

\begin{figure}[!htb]
\centering
\includegraphics[width=2in]{Fig3}
\caption{Generic WSN node with the VFC and the DUT included. Current sense point (a) and analog switches control lines (b) are shown.}
\label{fig3}
\end{figure}

The resistor $R_{cap}$ limits the charging current of $C_{sleep}$, so it fits within the maximum range of SEM. During the last phase of sleep state measure, the battery powers the DUT and the current through $R_{shunt}$ is the sum of the current recharging $C_{sleep}$ and the DUT in sleep.
In interval III (Fig. \ref{fig2}) it is possible to see that the DUT is consuming more energy than in intervals II and IV. This is necessary as the microcontroller of the DUT must be active for a very short period of time to switch the power supply from $C_{sleep}$ to the battery. This small rise in the current -that will be measured as sleep consumption because we have $C_{sleep}$ as power source- can be neglected, as it is very small compared to the other current/time pairs.

The measuring current range with the proposed configuration is reduced from five decades (from micro to tens of milliamperes) to only two decades (milliamperes to tens of milliamperes) as there is no need to measure the consumption in sleep state. This consumption is measured in the wake-from-sleep event, during the $C_{sleep}$ charge.

% no tiene que ser asi, simplemente simplifica las cuentas.
Assuming that the current is constant during each state, and that there are many pulses in each state, then the capacitor is charged with constant current, and thus it holds:
% 
\begin{equation}\label{ecuacion1}
f(I)=k \cdot I
\end{equation}
% 
\noindent
where $f(I)$ is the frequency of the output signal, $I$ is the current drained from the battery, and $k$ is a constant determined by system components. The parameter $k$ is in $coulombs^{-1}$, and is equivalent to the inverse of the charge of each pulse from SEM. In Eq. (2) is shown the value of $k$ after disregarding some terms, where $C$ is the timing capacitor, $\alpha$ is the current scaling factor, and $V_{ref}$ is the voltage reference to which $C$ is charged.

\begin{equation}\label{ecuacion2}
k = (\alpha \cdot C \cdot V_{ref})^{-1}
\end{equation}

% *************************************************************************************************
% III - RESULTADOS
% *************************************************************************************************
\section{Results}

SPICE simulation results are promising, data showed that nodes could have an accurate measurement of energy consumption. Fig. \ref{fig4} shows the relationship between the output frequency of the current-to-frequency converter and the instantaneous current consumed by the DUT. This relationship is shown for three different temperature values when the node is powered with battery at their nominal voltage. It is also shown an approximation using linear regression (dashed), which has a coefficient of determination of 0.996. Finally, a curve at nominal temperature but with decreased battery terminals voltage (2.4 V) is also shown. It is worth to remark the fact that the approximation is forced to pass through zero.
% This is to simplify the conversion on the DUT as each pulse yields a constant charge value.
% 
%Also shown is a curve to nominal temperature but with the voltage at the battery terminals decreased (2.4V).
% 
\begin{figure}[!htb]
\centering
\includegraphics[width=2.5in]{Fig4}
\caption{Output frequency versus current consumed by the DUT.}
\label{fig4}
\end{figure}

Fig. \ref{fig5} shows the voltage on $C_{sleep}$ terminals and the output signal during the time $C_{sleep}$
recharge that occurs when the node returns the minimum power state. Consumed charge is recovered in
this period, which is less than the time in sleep. This fact is always true as the recharge current
is many times the discharge rate.

\begin{figure}[!htb]
\centering
\includegraphics[width=2.5in]{Fig5}
\caption{Simulation of the output signal during the switch from sleep state to active state
%, and the measuring of the charge current of the capacitor $C_{sleep}$.
}
\label{fig5}
\end{figure}

% *************************************************************************************************
% IV - CONCLUSIONES
% *************************************************************************************************
\section{Conclusions}
We proposed a system called SEM that allows a WSN node to meter in real-time its own energy
consumption in the field. The SEM overcame the problem of handling a dynamic range of five decades
and a theoretical calculus shows that the consumption overhead of this method is less than 1\% for
a TelosB with a duty-cycle above 0.3\%. Results from simulations show that the SEM is highly
linear, with a coefficient of determination of 0.996, has a very low temperature drift, and is
almost independent of the power supply.

In order to complete this on-going research, the SEM has to be built and tested in the field.
Moreover, a future work could include a comparison between the SEM and estimation methods such
as ContikiOS's Energest \cite{ContikiOS}. Long term deployments should be done to exploit the
advantages of energy estimation on every node of the WSN.
% 
% references section
% 
% can use a bibliography generated by BibTeX as a .bbl file
% BibTeX documentation can be easily obtained at:
% http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/
% The IEEEtran BibTeX style support page is at:
% http://www.michaelshell.org/tex/ieeetran/bibtex/
%\bibliographystyle{IEEEtran}
% argument is your BibTeX string definitions and bibliography database(s)
%\bibliography{IEEEabrv,../bib/paper}
%
% <OR> manually copy in the resultant .bbl file
% set second argument of \begin to the number of references
% (used to reserve space for the reference number labels box)
%\begin{thebibliography}{1}
%
%\bibitem{IEEEhowto:kopka}
%H.~Kopka and P.~W. Daly, \emph{A Guide to \LaTeX}, 3rd~ed.\hskip 1em plus
% 0.5em minus 0.4em\relax Harlow, England: Addison-Wesley, 1999.
%
%\end{thebibliography}

\bibliographystyle{IEEEtran}
\bibliography{bibPoster}
% that's all folks
\end{document}


